<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
   
   <meta name="description" content="string operations">
    
    <meta name="author" content="John S. Urban" >
    <link rel="icon" href="../favicon.png">

    <title>atleast &ndash; M_strings</title>

    <link href="../css/bootstrap.min.css" rel="stylesheet">
    <link href="../css/pygments.css" rel="stylesheet">
    <link href="../css/font-awesome.min.css" rel="stylesheet">
    <link href="../css/local.css" rel="stylesheet">
    
    <link  href="../tipuesearch/tipuesearch.css" rel="stylesheet">
    
    

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    
    <script src="../js/jquery-2.1.3.min.js"></script>
    <script src="../js/svg-pan-zoom.min.js"></script>

  </head>

  <body>

    <!-- Fixed navbar -->
    <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="../index.html">M_strings </a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
        
            <li class="dropdown hidden-xs visible-sm visible-md hidden-lg">
              <a href="#" class="dropdown-toggle"
              data-toggle="dropdown" role="button"
              aria-haspopup="true"
     aria-expanded="false">Contents <span class="caret"></span></a>
        <ul class="dropdown-menu">
          
              
            <li><a href="../lists/files.html">Source Files</a></li>
        
        
        
            <li><a href="../lists/modules.html">Modules</a></li>
        
            
                                
            <li><a href="../lists/procedures.html">Procedures</a></li>
        
               
            <li><a href="../lists/types.html">Derived Types</a></li>
        
        
            </ul>
            </li>


<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li>



<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li>



<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li>

                             
<li class="visible-xs hidden-sm visible-lg"><a href="../lists/types.html">Derived Types</a></li>


          </ul>
        
        <form action="../search.html" class="navbar-form navbar-right" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required>
        </div>
<!--
        <button type="submit" class="btn btn-default">Submit</button>
-->
        </form>
        
        </div><!--/.nav-collapse -->
      </div>
    </nav>

    <div class="container">
    
  
  <div class="row">
    <h1>atleast
      <small>Function</small>
    
    </h1>
    
<div class="row">
  <div class="col-lg-12">
<div class="well well-sm">
  <ul class="list-inline" style="margin-bottom:0px;display:inline">
     
     
     
     
    
    
     <li><i class="fa fa-list-ol"></i>
       <a data-toggle="tooltip"
    data-placement="bottom" data-html="true"
    title=" 0.4% of total for procedures.">11 statements</a>
     </li> 
     
     
     
    <li><i class="fa fa-code"></i><a href="../src/M_strings.f90"> Source File</a></li>
     
     
  </ul>
  <ol class="breadcrumb in-well text-right">
  
    
     <li><a href='../sourcefile/m_strings.f90.html'>M_strings.f90</a></li>
    
     <li><a href='../module/m_strings.html'>M_strings</a></li>
    
  
     <li class="active">atleast</li>
  </ol>
</div>
</div>
</div>
<script>
  $(function () {
  $('[data-toggle="tooltip"]').tooltip()
  })
</script>

  </div>
  
  <div class="row">
    <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg">
    
<div id="sidebar">
  
<h3>Contents</h3>
 





















<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div>
  <div class="list-group">
    <a class="list-group-item" href="../proc/atleast.html#src">atleast</a>
  </div>
</div>



</div>

    </div>
    
    <div class="col-md-9" id='text'>
    <h2>
public function atleast(line, length, pattern) result(strout)
    
    
   
</h2>
    
  


    
    <h2 id="name">NAME</h2>
<p>atleast(3f) - [M_strings:LENGTH] return string padded to at least
   specified length
   (LICENSE:PD)</p>
<h2 id="synopsis">SYNOPSIS</h2>
<p>function atleast(str,length,pattern) result(strout)</p>
<div class="codehilite"><pre><span></span><code>character(len=*)                           :: str
integer,intent(in)                         :: length
character(len=max(length,len(trim(line)))) ::  strout
character(len=*),optional                  ::  pattern
</code></pre></div>

<h2 id="description">DESCRIPTION</h2>
<p>atleast(3f) pads a string with spaces to at least the specified
   length. If the trimmed input string is longer than the requested
   length the trimmed string is returned.</p>
<h2 id="options">OPTIONS</h2>
<p>str      the input string to return trimmed, but then padded to
            the specified length if shorter than length
   length   The minimum string length to return
   pattern  optional string to use as padding. Defaults to a space.</p>
<h2 id="returns">RETURNS</h2>
<p>strout  The input string padded to the requested length or
           the trimmed input string if the input string is
           longer than the requested length.</p>
<h2 id="example">EXAMPLE</h2>
<p>Sample Program:</p>
<div class="codehilite"><pre><span></span><code><span class="n">program</span> <span class="n">demo_atleast</span>
 <span class="n">use</span> <span class="n">M_strings</span><span class="p">,</span> <span class="n">only</span> <span class="p">:</span> <span class="n">atleast</span>
 <span class="n">implicit</span> <span class="n">none</span>
 <span class="n">character</span><span class="p">(</span><span class="n">len</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>            <span class="p">::</span> <span class="n">string</span><span class="o">=</span><span class="s">&#39;abcdefghij&#39;</span>
 <span class="n">character</span><span class="p">(</span><span class="n">len</span><span class="o">=</span><span class="p">:),</span><span class="n">allocatable</span> <span class="p">::</span> <span class="n">answer</span>
 <span class="n">integer</span>                      <span class="p">::</span> <span class="n">i</span>
    <span class="n">answer</span><span class="o">=</span><span class="n">atleast</span><span class="p">(</span><span class="n">string</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
    <span class="n">write</span><span class="cm">(*,&#39;(&quot;[&quot;,a,&quot;]&quot;)&#39;) answer</span>
<span class="cm">    answer=atleast(string,20)</span>
<span class="cm">    write(*,&#39;(&quot;[&quot;,a,&quot;]&quot;)&#39;) answer</span>
<span class="cm">    i=30</span>
<span class="cm">    write(*,*)</span>
    <span class="n">write</span><span class="cm">(*,&#39;(1x,a,1x,i0)&#39;) &amp;</span>
<span class="cm">     &amp; atleast(&#39;CHAPTER 1 : The beginning &#39;,i,&#39;.&#39;), 1   , &amp;</span>
<span class="cm">     &amp; atleast(&#39;CHAPTER 2 : The end &#39;,i,&#39;.&#39;),       1234, &amp;</span>
<span class="cm">     &amp; atleast(&#39;APPENDIX &#39;,i,&#39;.&#39;),                  1235</span>
<span class="cm">    write(*,*)</span>
    <span class="n">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s">&#39;(1x,a,i7)&#39;</span><span class="p">)</span> <span class="o">&amp;</span>
     <span class="o">&amp;</span> <span class="n">atleast</span><span class="p">(</span><span class="s">&#39;CHAPTER 1 : The beginning &#39;</span><span class="p">,</span><span class="n">i</span><span class="p">,</span><span class="s">&#39;.&#39;</span><span class="p">),</span> <span class="mi">1</span>   <span class="p">,</span> <span class="o">&amp;</span>
     <span class="o">&amp;</span> <span class="n">atleast</span><span class="p">(</span><span class="s">&#39;CHAPTER 2 : The end &#39;</span><span class="p">,</span><span class="n">i</span><span class="p">,</span><span class="s">&#39;.&#39;</span><span class="p">),</span>       <span class="mi">1234</span><span class="p">,</span> <span class="o">&amp;</span>
     <span class="o">&amp;</span> <span class="n">atleast</span><span class="p">(</span><span class="s">&#39;APPENDIX &#39;</span><span class="p">,</span><span class="n">i</span><span class="p">,</span><span class="s">&#39;.&#39;</span><span class="p">),</span>                  <span class="mi">1235</span>
<span class="n">end</span> <span class="n">program</span> <span class="n">demo_atleast</span>
</code></pre></div>

<p>Results:</p>
<div class="codehilite"><pre><span></span><code><span class="k">[abcdefghij]</span>
<span class="k">[abcdefghij          ]</span>

 <span class="na">CHAPTER 1 : The beginning .... 1</span>
 <span class="na">CHAPTER 2 : The end .......... 1234</span>
 <span class="na">APPENDIX ..................... 1235</span>

 <span class="na">CHAPTER 1 : The beginning ....      1</span>
 <span class="na">CHAPTER 2 : The end ..........   1234</span>
 <span class="na">APPENDIX .....................   1235</span>
</code></pre></div>

<h2 id="author">AUTHOR</h2>
<div class="codehilite"><pre><span></span><code>John S. Urban
</code></pre></div>

<h2 id="license">LICENSE</h2>
<div class="codehilite"><pre><span></span><code>Public Domain
</code></pre></div>
    

    <h3>Arguments</h3>
    
      
<table class="table table-striped varlist">
<thead><tr><th>Type</th>
<th>Intent</th><th>Optional</th>
<th>Attributes</th><th></th><th>Name</th><th></th></thead>



<tbody>

  
  
  
  
<tr>
  
  <td><span class="anchor" id="variable-line"></span>character(len=*),</td>
  <td>intent(in)</td>
  <td></td>
  
  <td></td><td>::</td>
  <td><strong>line</strong></td><td></td>
  
</tr>

  
  
  
  
<tr>
  
  <td><span class="anchor" id="variable-length~2"></span>integer,</td>
  <td>intent(in)</td>
  <td></td>
  
  <td></td><td>::</td>
  <td><strong>length</strong></td><td></td>
  
</tr>

  
  
  
  
<tr>
  
  <td><span class="anchor" id="variable-pattern"></span>character(len=*),</td>
  <td>intent(in),</td>
  <td>optional</td>
  
  <td></td><td>::</td>
  <td><strong>pattern</strong></td><td></td>
  
</tr>

</tbody>
</table>

    
    
    
    
    
    
    
   <h3>Return Value <small><span class="anchor" id="variable-strout"></span>character(len=max(length,len(trim(line))))
  </small></h3>
    
    
    
    
     
    <br>

    <section class="visible-xs visible-sm hidden-md">
      
<h3>Contents</h3>
 





















<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div>
  <div class="list-group">
    <a class="list-group-item" href="../proc/atleast.html#src">atleast</a>
  </div>
</div>



    </section>
    <br class="visible-xs visible-sm hidden-md">

    

    
    
    
    
    

    
    
    
    
    


    
    
    
    <section>
    <h2><span class="anchor" id="src"></span>Source Code</h2>
    <div class="highlight"><pre><span></span><span class="k">function </span><span class="n">atleast</span><span class="p">(</span><span class="n">line</span><span class="p">,</span><span class="n">length</span><span class="p">,</span><span class="n">pattern</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">strout</span><span class="p">)</span>

<span class="c">! ident_36=&quot;@(#)M_strings::atleast(3f): return string padded to at least specified length&quot;</span>

<span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">)</span>                <span class="kd">::</span> <span class="n">line</span>
<span class="kt">integer</span><span class="p">,</span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">)</span>                         <span class="kd">::</span> <span class="n">length</span>
<span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">),</span><span class="k">optional</span>       <span class="kd">::</span> <span class="n">pattern</span>
<span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=</span><span class="nb">max</span><span class="p">(</span><span class="n">length</span><span class="p">,</span><span class="nb">len</span><span class="p">(</span><span class="nb">trim</span><span class="p">(</span><span class="n">line</span><span class="p">))))</span> <span class="kd">::</span> <span class="n">strout</span>
<span class="k">if</span><span class="p">(</span><span class="nb">present</span><span class="p">(</span><span class="n">pattern</span><span class="p">))</span><span class="k">then</span>
<span class="k">   </span><span class="n">strout</span><span class="o">=</span><span class="n">line</span><span class="o">//</span><span class="nb">repeat</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span><span class="nb">len</span><span class="p">(</span><span class="n">strout</span><span class="p">)</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">pattern</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
<span class="k">else</span>
<span class="k">   </span><span class="n">strout</span><span class="o">=</span><span class="n">line</span>
<span class="k">endif</span>
<span class="k">end function </span><span class="n">atleast</span>
</pre></div>

    </section>
    <br>
    
    
    </div>
  </div>


    <hr>    
    </div> <!-- /container -->
    <footer>
      <div class="container">
      <div class="row">
        <div class="col-xs-6 col-md-4"><p>&copy; 2022 
                                          </p></div>
        <div class="col-xs-6 col-md-4 col-md-push-4">
          <p class="text-right">
            Documentation generated by 
            <a href="https://github.com/cmacmackin/ford">FORD</a>
             on 2022-01-16 22:32  
          </p>
        </div>
        <div class="col-xs-12 col-md-4 col-md-pull-4"><p class="text-center"> M_strings was developed by John S. Urban</p></div>
      </div>
      <br>
      </div> <!-- /container -->    
    </footer>

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
<!--
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
-->
    <script src="../js/bootstrap.min.js"></script>
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="../js/ie10-viewport-bug-workaround.js"></script>

    <!-- MathJax JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script type="text/x-mathjax-config">
      MathJax.Hub.Config({
        TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } },
        jax: ['input/TeX','input/MathML','output/HTML-CSS'],
        extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js']
      });
    </script>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    
    
    <script src="../tipuesearch/tipuesearch_content.js"></script>
    <script src="../tipuesearch/tipuesearch_set.js"></script>
    <script src="../tipuesearch/tipuesearch.js"></script>
    
    
  </body>
</html>